const tokenApi = require('../../utils/token.js');

Component({
  properties: {

  },
  options: {
    addGlobalClass: true, //使用全局css
  },
  data: {
    isShow: false
  },
  methods: {
    getUserInfo: function (e) {
      const _this = this;
      console.log('getUserInfo用户信息： ', e);
      if (typeof (e.detail.userInfo) != "undefined") {
        wx.setStorage({
          key: 'USERINFO',
          data: e.detail,
        })
        _this.setData({
          'isShow': false
        })
        console.log("USERINFO 已存入缓存");
      } else {
        console.log("userInfo is undefined");
      }
    },
  },
  pageLifetimes: {
    // 组件所在页面的生命周期函数
    show () {
      const _this = this;
      //查询一下用户授权
      wx.getSetting({
        success(res) {
          if (res.authSetting['scope.userInfo']) {
            console.log("用户已授权");
            wx.getUserInfo({
              success: function (detail) {
                let e = {
                  detail
                }
                wx.getStorage({
                  key: 'USERINFO',
                  fail: (err) => {
                    //已授权但没有缓存的情况下, 查看会话是否已经过期
                    console.log("用户已授权但没有缓存");
                    wx.checkSession({
                      success() {
                        // 如果没有过期则把用户信息存入缓存
                        _this.getUserInfo(e)
                      },
                      fail() {
                        console.log("session_key 已经失效，需要重新执行登录流程")
                        // 否则重新登陆
                        tokenApi.get()
                        .then(resp => {
                          _this.getUserInfo(e)
                        })
                      }
                    })
                    
                  }
                })
                
              }
            })
          } else {
            console.log("用户未授权");
            _this.setData({
              'isShow': true
            })
          }
        }
      })
    },
  },
})
